之前學過安裝Ruby On Rails 的步驟,但沒有仔細研究過跟著Ruby 安裝的相依套件,因此紀錄一下做個基本的認識。
目前尚未研究BingAI的回答與來源文章,若之後想再進一步了解時,再回來翻閱這篇記錄做修正。
至於會想紀錄的原因,是因為在另外找尋安裝Ruby的相關文章的時候,發現了一些文章如 How to Install Ruby on Rails with RVM in Ubuntu 22.04或是 How To Install Ruby on Rails with RVM on Ubuntu 20.04 | DigitalOcean 等文中提到安裝RVM之前要先安裝的相依套件(Dependencies):
# Install the required dependencies for building Ruby:
$ sudo apt install curl gpg2 gcc make libssl-dev libreadline-dev zlib1g-dev libsqlite3-dev
因為和我記得的做法不太一樣,所以這次在按照以前的安裝步驟時有注意看 Terminal 中的每行訊息,Ruby 在一開始安裝時會跑一段:
Updating system...
Installing required packages: g++, gcc, autoconf, automake, bison, libc6-dev, libffi-dev, libgdbm-dev, libncurses5-dev, libsqlite3-dev, libtool, libyaml-dev, make, pkg-config, sqlite3, zlib1g-dev, libgmp-dev, libreadline-dev, libssl-dev..................................
Requirements installation successful.
利用 Bing AI (或 ChatGPT) 列出Ruby 會安裝的相依套件:
請列出安裝ruby的同時會安裝的相依套件 並說明套件與Ruby相關的用途: g++, gcc, autoconf, automake, bison, libc6-dev, libffi-dev, libgdbm-dev, libncurses5-dev, libsqlite3-dev, libtool, libyaml-dev, make, pkg-config, sqlite3, zlib1g-dev, libgmp-dev, libreadline-dev, libssl-dev..................................
這兩個都是GNU編譯器集合(GCC)的一部分,用於編譯和鏈接程式。
在安裝Ruby時,它們被用來從源碼編譯Ruby。
一個產生可以自動配置軟體源碼包的shell腳本的工具。
在安裝Ruby時,它用於生成配置腳本。
這是一個工具,用於自動生成符合GNU編碼標準的Makefile.in文件。
在安裝Ruby時,它用於生成Makefile。
這是一個通用的解析器生成器,可以將帶註釋的上下文無關文法轉換為確定性LR或廣義LR(GLR)解析器。
在安裝Ruby時,它被用來生成解析器。
這個套件包含了標準C庫的開發文件(頭文件和靜態庫文件)。
在安裝Ruby時,它提供了必要的頭文件和庫以供編譯。
這個套件包含了外部函數接口庫(libffi)的開發文件。
在安裝Ruby時,它被用來支援Ruby FFI(Foreign Function Interface)擴展,該擴展允許Ruby程式直接呼叫動態鏈接庫中定義的函數。
這個套件包含了GNU dbm數據庫函數庫的開發文件。
在安裝Ruby時,它被用來支援Ruby GDBM模組,該模組提供了對GNU dbm數據庫的訪問。
此套件包含了ncurses庫(用於終端處理)的開發文件。
在安裝Ruby時,它被用來支援Ruby Curses模組,該模組提供了對ncurses庫的訪問。
此套件包含了SQLite 3數據庫引擎的開發文件。
在安裝Ruby時,它被用來支援Ruby SQLite3模組,該模組提供了對SQLite 3數據庫的訪問。
一個通用庫支援腳本,可以隱藏使用各種系統產生共享庫的複雜性。
在安裝Ruby時,它被用來處理共享庫。
這個套件包含了LibYAML庫(一種YAML解析器和發生器)的開發文件。
在安裝Ruby時,它被用來支援Ruby Psych模組,該模組提供了對YAML數據格式的訪問。
這是一種工具,可以自動決定哪些部分的程式需要被重新編譯。
在安裝Ruby時,它被用來從源碼編譯Ruby。
這是一種腳本,用於管理在編譯時使用的庫。
在安裝Ruby時,它被用來確定需要的庫和頭文件的位置。
這是一種在磁盤上保存數據的軟體庫,提供了可嵌入的零配置SQL數據庫引擎。
在安裝Ruby時,它被用來支援Ruby SQLite3模組。
此套件包含了zlib壓縮庫的開發文件。
在安裝Ruby時,它被用來支援Ruby Zlib模組,該模組提供了對zlib庫的訪問。
此套件包含了GNU多精度算術庫(GMP)的開發文件。
在安裝Ruby時,它被用來支援Ruby的大數運算。
此套件包含了GNU Readline庫的開發文件。
在安裝Ruby時,它被用來支援Ruby Readline模組,該模組提供了對Readline庫的訪問。
此套件包含了OpenSSL庫(一種強大的安全套接字層密碼庫)的開發文件。
在安裝Ruby時,它被用來支援Ruby OpenSSL模組,該模組提供了對OpenSSL庫的訪問。
也想了解若不安裝這些套件會有何影響?